package pe.edu.sisclas.model.domain.util;

import javax.faces.application.FacesMessage;
import javax.faces.application.FacesMessage.Severity;
import javax.faces.context.FacesContext;

import org.primefaces.context.RequestContext;

/**
 * Helper para envio de mensajes a la vista JSF por medio el FacesContext
 * 
 * @author Cesar Zegarra (developer2)
 * @version 1.0
 * @jira SGA-32
 * @since 2013-11-05 12:04
 * 
 */
public class FacesMessagesHelper {

	/**
	 * Enviar mensaje a cliente 
	 * @param s : Severidad del mensaje (WARN, INFO, ETC)
	 * @param title : Titulo del mensaje
	 * @param message : Cuerpo del Mensaje
	 * @param growlPath : Path Componente Growl a actualizar
	 * @param context : Context del FacesMessage
	 */
	public static void sendGrowlMessage(Severity s,String title,String message,String growlPath,String context){
		FacesMessage msg = new FacesMessage(s, title, 
				message);		

		FacesContext.getCurrentInstance().addMessage(context, msg); 
		if(growlPath!=null){
			try{
				RequestContext.getCurrentInstance().update(growlPath);
			}catch(NullPointerException npe){
				
			}
		}
	}
	
	/**
	 * Enviar mensaje a cliente 
	 * @param s : Severidad del mensaje (WARN, INFO, ETC)
	 * @param title : Titulo del mensaje
	 * @param message : Cuerpo del Mensaje
	 * @param growlPath : Path Componente Growl a actualizar
	 */
	public static void sendGrowlMessage(Severity s,String title,String message,String growlPath){
		FacesMessage msg = new FacesMessage(s, title, 
				message);		
		

		FacesContext.getCurrentInstance().addMessage(null, msg); 
		try{
			RequestContext.getCurrentInstance().update(growlPath);
		}catch(NullPointerException npe){
			
		}

	}
	
	/**
	 * Enviar mensaje a cliente 
	 * @param s : Severidad del mensaje (WARN, INFO, ETC)
	 * @param title : Titulo del mensaje
	 * @param message : Cuerpo del Mensaje
	 */
	public static void sendGrowlMessage(Severity s,String title,String message){
		FacesMessage msg = new FacesMessage(s, title, 
				message);		

		FacesContext.getCurrentInstance().addMessage(null, msg);	
	
	}
}